package com.smart_campus.sys.mapper;

import com.smart_campus.sys.domain.Role;
import com.smart_campus.sys.vo.NoticeVo;
import com.smart_campus.sys.vo.RoleVo;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

/**
 * @aytgor 陈鹏
 * @date 2020/6/10 14:22
 */
public interface RoleMapper {
    /**
     * 查询全部角色
     *
     * @param roleVo
     * @return List<NoticeVo>
     */
    List<RoleVo> selectRole(RoleVo roleVo);


    /**
     * 删除全部角色权限
     *
     * @param id
     */
    void deleteRoleMenuByRid(Integer id);

    /**
     * 添加角色新的权限
     *
     * @param rid
     * @param mid
     */
    void insertRoleMenu(@Param("rid") Integer rid, @Param("mid") Integer mid);

    /**
     * @param id
     * @return List<Integer>
     * 查询角色权限
     */
    Integer[] selectMid(Integer id);

    int deleteByPrimaryKey(Integer id);

    int insert(Role record);

    int insertSelective(Role record);

    Role selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Role record);

    int updateByPrimaryKey(Role record);

    /**
     * 查询全部的可用角色
     *
     * @param id
     * @return List<Role>
     */
    List<Role> selectList(int id);

    /**
     * 查询用户拥有角色
     *
     * @param id
     * @return List<Integer>
     */
    List<Integer> queryRoleIdsByUserId(Integer id);

    List<Role> selectLists(Role role,@Param("roleIds") List<Integer> roleIds);

    List<Integer> queryMenuIdsByRids(@Param("roleIds") List<Integer> roleIds);

    void DeleteRoleMenu(Integer id);

}